tool functionality